#pragma once

#include <stdio.h>
#include <stdlib.h>

#include <string>
#include <vector>

#include "exceptions.h"
#include "parsetree.h"
#include "parsercombs.h"

namespace Thinder
{

using std::string;
using std::vector;

string parseStringLiteral(string &in);
ParseTree::Identifier parseIdentifier(string &in);
ParseTree::Name parseName(string &in);
ParseTree::Type parseType(string &in);
ParseTree::Modifier parseModifier(string &in);
ParseTree::FormPar parseFormPar(string &in);
ParseTree::Statement parseStatement(string &in);
ParseTree::Declaration parseDeclaration(string &in);
ParseTree::Thinder parseThinder(string &in);
ParseTree::Expression parseExpression(string &in);
ParseTree::Primary parsePrimary(string &in);

} // namespace Thinder

